#ifndef SIMPLE_IO_FILE_H
#define SIMPLE_IO_FILE_H

#include <string> // std::string
#include <tuple> // std::tuple

namespace simple::io
{
	struct standard_input_t { constexpr static int value = 0; };
	struct standard_output_t { constexpr static int value = 1; };
	struct standard_error_t { constexpr static int value = 2; };

	constexpr standard_input_t standard_input{};
	constexpr standard_output_t standard_output{};
	constexpr standard_error_t standard_error{};

	std::string get_message(standard_input_t);
	std::string get_message(standard_output_t);
	std::string get_message(standard_error_t);

	using all_standard_handles_t = std::tuple<standard_input_t, standard_output_t, standard_error_t>;
	constexpr all_standard_handles_t all_standard_handles{};

} // namespace simple::io

#endif /* end of include guard */
